#ifndef MOBILE_H_
#define MOBILE_H_

#include "world.h"
#include "location.h"

class MobileUnit{
public:
	MobileUnit(int y_loc,int x_loc,World *world):
		loc(y_loc,x_loc), world(world) {};

	virtual ~MobileUnit() {};
	void move(int distance);
	virtual void turnleft();
	virtual void turnright();


	virtual void printStatus();

	virtual void updateWorld()=0;

	virtual void moveStep();

protected:


	Location loc;

	Location::Direction turn(Location::Direction current,bool right);

	World *world;
};


#endif /* MOBILE_H_ */
